1. Field of Art
The present invention generally relates to the field of network management, in particular to unit testing and network monitoring.
2. Description of the Related Art
With the emerging trend in real-time Internet Protocol (IP) services (e.g., Voice over IP (VoIP), Internet Protocol Television (IPTV)) and web services (e.g., Representational State Transfer (REST), Remote Procedure Call (RPC)), the integration complexity of a wide array of network/service elements has grown exponentially. These services typically are implemented by a heterogeneous network that includes a variety of interconnected heterogeneous component systems (also referred to as component systems, network/service elements). Each of the component systems serves a unique role and works together with the rest to collectively provide the aggregate service to users. For example, in VoIP, session border controllers work in conjunction with gateways, phones, billing systems, Domain Name System (DNS) servers, Remote Authentication Dial In User Service (RADIUS)/Lightweight Directory Access Protocol (LDAP) authentication servers, and underlying IP infrastructure, to constantly validate and ensure that phones can be registered, phone calls can be made, that the caller is authenticated, and that the phone calls are billed properly.
Because of the interdependent nature of the heterogeneous network, changes made in one component system (e.g., configuration changes) can inadvertently affect other component systems dependent upon it. The unintended impact can cause inter-component dependencies to breakdown and thereby break the service. In addition, because multiple component systems can share the same hosting computer resources, changes made in one component system can also impact other component systems and cause service failure. Because heterogeneous networks tend to be large in scale, the developer (or administrator) who made the changes may not be aware of these unintended consequences, even if he is also in charge of the impacted component systems.
One traditional approach to ensure that a network system functions properly involves patch management, log management, and vulnerability scanning. Patch management merely checks to see whether certain known patches have been applied without any regard to ensure that the underlying component system is working properly. Log management records what has happened in the underlying component system without revealing the actual impacts or the causes. Vulnerability scanning uses a series of checks to ensure that component systems deployed are not susceptible to known software flaws (vulnerabilities). All of these technologies are reactive in nature, and cannot ensure that the network system functions properly.
Another existing approach to ensure that a network system functions properly involves sending test messages to the system and verifying the return message. This approach may be effective in a simple network system (e.g., a website hosted by a web server). However, this approach is not suited to test and monitor more complicated heterogeneous network systems because these network systems include interconnected and interdependent heterogeneous component systems, each supporting different communication protocols. Currently there is no solution on the market that provides a single test framework that can independently verify that the heterogeneous system functions properly.
Therefore, there is a need for a system and method for ensuring that a heterogeneous network system functions properly before, during, and after a change is introduced into the system.